Hi all, |
Re: MiniExplorer Well, I have scribbled together a quick and dirty modification of smartDXL's miniExplorer below. It has the new option to allow an extra "Add" button (by setting the new global variable miniExplorerAllowMultipleFiles = true
. Upon "OK", it then returns a list of modules (separated by carriage returns), which have been added using this button. I have also added an example at the end of the file. This is just meant to be an example on how it could be done. It lacks the visual feedback about which modules have been selected and the possibility to remove modules from the selection. It is also questionable whether returning a string with one module per line is the appropriate return value. Most likely you want to do something with this list, so a Skip list would probably more useful.
// Enhanced Mini Database Explorer
/*
Mini database explorer based on Telelogic builtin miniExplorer.
Includes a fix for the builtin miniExplorer problem where it returns
a folder name even when the item filter is set to return a formal
module. The OK button is now inactive until an item matching the
filter is selected.
Usage:
string miniExplorer(DB dbParent, Folder fStart, int itemMask)
string miniExplorer(DB dbParent, Folder fStart)
string miniExplorer(Folder fStart, int itemMask)
string miniExplorer(DB dbParent, int itemMask)
string miniExplorer()
Where:
dbParent Parent dialog box. Returns focus to this dialog
on closing.
fStart Folder to open in the tree when the dialog is first
displayed.
itemMask Mask used to filter items that are displayed.
MINI_EXP_FP - show folders and projects
MINI_EXP_LINK_MODS - show link modules
MINI_EXP_FORMAL_MODS - show formal modules
MINI_EXP_DESCRIPTIVE_MODS - show descriptive modules
MINI_EXP_SHOW_DELETED - show deleted items
smartDXL.com
Modifications:
Peter Albert (PA) 25.05.2011: Added the option to return a list of modules
*/
pragma runLim, 0
// item filters
const int MINI_EXP_FP = 1
const int MINI_EXP_LINK_MODS = 2
const int MINI_EXP_FORMAL_MODS = 4
const int MINI_EXP_DESCRIPTIVE_MODS = 8
const int MINI_EXP_SHOW_DELETED = 16
// item filters
const int MINI_EXP_SHOW_ALL_NO_DELETED = 15
const int MINI_EXP_SHOW_ALL = 31
DB dbMiniExplorer = null
DBE dbeMiniExplorerTree = null
DBE dbeMiniExplorerOkButton = null
int miniExplorerItemMask = MINI_EXP_FP
string miniExplorerSelectedItem = ""
// PA: Add flag for selection of multiple files
bool miniExplorerAllowMultipleFiles = false
DBE miniExplorerAddButton = null
/******************************************************************************
itemMatchesMask
******************************************************************************/
bool itemMatchesMask(Item itm)
{
if (type(itm) == "Formal" && ((miniExplorerItemMask & MINI_EXP_FORMAL_MODS) == MINI_EXP_FORMAL_MODS))
{
return(true)
}
if (type(itm) == "Link" && ((miniExplorerItemMask & MINI_EXP_LINK_MODS) == MINI_EXP_LINK_MODS))
{
return(true)
}
if (type(itm) == "Descriptive" && ((miniExplorerItemMask & MINI_EXP_DESCRIPTIVE_MODS) == MINI_EXP_DESCRIPTIVE_MODS))
{
return(true)
}
return(false)
}
/******************************************************************************
doOk
******************************************************************************/
void doOk(DB db)
{
// PA: Set return value on selection, rather than on pressing the OK button
//miniExplorerSelectedItem = getRealPath(dbSep get(dbeMiniExplorerTree))
release(dbMiniExplorer)
hide(dbMiniExplorer)
}
/******************************************************************************
doActivate
******************************************************************************/
void doActivate(DBE dbe)
{
string sel = getRealPath(dbSep get(dbeMiniExplorerTree))
if (itemMatchesMask(item(sel)) && !miniExplorerAllowMultipleFiles)
{
miniExplorerSelectedItem = sel
release(dbMiniExplorer)
hide(dbMiniExplorer)
}
}
/******************************************************************************
doCancel
******************************************************************************/
void doCancel(DB db)
{
miniExplorerSelectedItem = ""
release(dbMiniExplorer)
hide(dbMiniExplorer)
}
/******************************************************************************
doNothing
******************************************************************************/
void doNothing(DB db)
{
;
}
/******************************************************************************
addItem
******************************************************************************/
void addItem(DBE dbe, Item i)
{
string displayPath = getDisplayPath(i)
// check status
if (exists(dbeMiniExplorerTree, displayPath) == false)
{
// check status
if (isDeleted(i) == false || (isDeleted(i) == true && ((miniExplorerItemMask & MINI_EXP_SHOW_DELETED) == MINI_EXP_SHOW_DELETED)))
{
// check item type
if (type(i) == "Folder" || type(i) == "Project")
{
Icon iconOpen, iconClosed
string sDummyEntry = displayPath dbSep dummyItem
// assign project or folder specific icons
assignIcons(i, iconOpen, iconClosed)
// add entry (plus dummy)
insert(dbeMiniExplorerTree, displayPath, iconClosed, iconOpen)
insert(dbeMiniExplorerTree, sDummyEntry, iconClosed, iconOpen)
}
else
{
if (itemMatchesMask(i))
{
insert(dbeMiniExplorerTree, displayPath, getIcon(i), getIcon(i))
}
}
}
}
}
/******************************************************************************
displayBranch
******************************************************************************/
void displayBranch(DBE dbe, string sItemPath)
{
Folder fStart = folder(getRealPath(sItemPath))
if (fStart != null)
{
Item i
for i in all fStart do
{
addItem(dbeMiniExplorerTree, i)
}
}
}
/******************************************************************************
doSelect
******************************************************************************/
void doSelect(DBE dbe)
{
string sel = getRealPath(dbSep get(dbeMiniExplorerTree))
if (itemMatchesMask(item(sel)))
{
active(dbeMiniExplorerOkButton)
// PA: Set return value on selection, rather than on pressing the OK button
// But only set it, if multiple files is not active
// Eventually, allow adding files
if (!miniExplorerAllowMultipleFiles){miniExplorerSelectedItem = sel}
else {active miniExplorerAddButton}
}
else
{
inactive(dbeMiniExplorerOkButton)
// PA deactivate the add button as well
inactive(miniExplorerAddButton)
}
}
/******************************************************************************
doExpand
******************************************************************************/
bool doExpand(DBE dbe, string sItem)
{
string sItemPath = dbSep sItem
string sDummyItem = sItemPath dbSep dummyItem
// check status
if (exists(dbeMiniExplorerTree, sDummyItem) == true)
{
// remove dummy
delete(dbeMiniExplorerTree, sDummyItem)
}
// check status
if (theCurrentView == DATABASE_VIEW)
{
// adjust view accordingly
displayBranch(dbeMiniExplorerTree, sItemPath)
}
else
{
Project prjOldRoot = getRootProject_()
setRootProject_(project(getRootOfPath sItemPath))
// adjust view accordingly
displayBranch(dbeMiniExplorerTree, sItemPath)
setRootProject_(prjOldRoot)
}
return true
}
/******************************************************************************
PA doAdd
******************************************************************************/
void doAdd(DB db)
{
string sel = getRealPath(dbSep get(dbeMiniExplorerTree))
if (itemMatchesMask(item(sel)))
{
if (miniExplorerSelectedItem != ""){miniExplorerSelectedItem = miniExplorerSelectedItem "\n"}
miniExplorerSelectedItem = miniExplorerSelectedItem sel
}
}
/******************************************************************************
fnChangeToStartFolder
******************************************************************************/
void fnChangeToStartFolder(Folder fStart)
{
if (!null fStart)
{
int iIndex
// calculate max bound for loop
int iFinish = length(rootName_(fStart))
// prepare initial path
string sFolderPath = ((theCurrentView == DATABASE_VIEW) ? dbDisplayRoot() : "")
// process string
for iIndex in 0 : iFinish by 1 do
{
// obtain character
string sCharacter = (rootName_(fStart))[iIndex:iIndex]
// check status
if (sCharacter == dbSep || iIndex == iFinish)
{
// check status
if (theCurrentView == PROJECT_VIEW && sFolderPath == dbSep)
continue
// update explorer
displayBranch(dbeMiniExplorerTree, sFolderPath)
}
sFolderPath = sFolderPath sCharacter
}
// update explorer
set(dbeMiniExplorerTree, sFolderPath)
}
else
{
// default to database level
displayBranch(dbeMiniExplorerTree, dbDisplayRoot())
set(dbeMiniExplorerTree, dbDisplayRoot())
}
}
/******************************************************************************
miniExplorer
Provides a tree view for user to select an item from the database.
Parameters:
dbParent Parent dialog box. Returns focus to this dialog
on closing.
fStart Folder to open in the tree when the dialog is first
displayed.
itemMask Mask used to filter items that are displayed.
Returns fullname of selected item or an empty string.
******************************************************************************/
string miniExplorer(DB dbParent,
Folder fStart,
int itemMask)
{
string pName = ""
Project pRoot = null
// PA: Empty return value when calling miniExplorer
miniExplorerSelectedItem = ""
miniExplorerItemMask = itemMask
if (null dbParent)
{
dbMiniExplorer = create("smart Mini Explorer", styleFloating)
}
else
{
dbMiniExplorer = create(dbParent, "smart Mini Explorer", styleFloating)
}
label(dbMiniExplorer, "Please select an item...")
dbeMiniExplorerTree = treeView(dbMiniExplorer, treeViewOptionSorted, 400, 15)
dbeMiniExplorerOkButton = apply(dbMiniExplorer, "OK", doOk)
// PA: Add a button to create a list of modules
miniExplorerAddButton = apply(dbMiniExplorer, "Add", doAdd)
// create our own close and ok buttons
close(dbMiniExplorer, false, doNothing)
ok(dbMiniExplorer, "Cancel", doCancel)
realize dbMiniExplorer
set(dbeMiniExplorerTree, doSelect, doActivate)
set(dbeMiniExplorerTree, doExpand)
inactive(dbeMiniExplorerOkButton)
// PA deactivate the add button as well
inactive(miniExplorerAddButton)
// check status
if (theCurrentView == DATABASE_VIEW)
{
// adjust accordingly
insert(dbeMiniExplorerTree, dbDisplayRoot(), iconDatabase, iconDatabase)
}
else
{
pRoot = getRootProject_()
setRootProject_(null)
// process database
for pName in database do
{
addItem(dbeMiniExplorerTree, item(dbSep pName))
}
setRootProject_(pRoot)
}
fnChangeToStartFolder(fStart)
block(dbMiniExplorer)
destroy(dbMiniExplorer)
return(miniExplorerSelectedItem)
}
/******************************************************************************
miniExplorer
Filter not specified
******************************************************************************/
string miniExplorer(DB dbParent, Folder fStart)
{
return miniExplorer(dbParent, fStart, MINI_EXP_SHOW_ALL)
}
/******************************************************************************
miniExplorer
Parent dialog not specified
******************************************************************************/
string miniExplorer(Folder fStart, int itemMask)
{
return miniExplorer(null, fStart, itemMask)
}
/******************************************************************************
miniExplorer
Current folder not specified
******************************************************************************/
string miniExplorer(DB dbParent, int itemMask)
{
return miniExplorer(dbParent, null, itemMask)
}
/******************************************************************************
miniExplorer
No parameters
******************************************************************************/
string miniExplorer()
{
return miniExplorer(null, null, MINI_EXP_SHOW_ALL)
}
/******************************************************************************
PA Examples
******************************************************************************/
DB testMiniExplorer_DB
DBE testMiniExplorer_modDBE
DBE testMiniExplorer_textDBE
void testMiniExplorer_doBrowseOne(DBE dbe)
{
string mName = miniExplorer(testMiniExplorer_DB, current Folder, MINI_EXP_FORMAL_MODS)
set(testMiniExplorer_modDBE, mName)
}
void testMiniExplorer_doBrowseList(DBE dbe)
{
miniExplorerAllowMultipleFiles = true
string mName = miniExplorer(testMiniExplorer_DB, current Folder, MINI_EXP_FORMAL_MODS)
set(testMiniExplorer_textDBE, mName)
}
void testMiniExplorer()
{
testMiniExplorer_DB = create("Test the miniExplorer")
testMiniExplorer_modDBE = field (testMiniExplorer_DB, "One Module:", "", 50, false)
beside testMiniExplorer_DB
button( testMiniExplorer_DB, "Browse...", testMiniExplorer_doBrowseOne)
left testMiniExplorer_DB
testMiniExplorer_textDBE = text(testMiniExplorer_DB, "Module list", "", 50, 150, false)
button( testMiniExplorer_DB, "Browse...", testMiniExplorer_doBrowseList)
realize testMiniExplorer_DB
show testMiniExplorer_DB
}
|
Re: MiniExplorer Peter_Albert - Wed May 25 05:00:19 EDT 2011 Well, I have scribbled together a quick and dirty modification of smartDXL's miniExplorer below. It has the new option to allow an extra "Add" button (by setting the new global variable miniExplorerAllowMultipleFiles = true
. Upon "OK", it then returns a list of modules (separated by carriage returns), which have been added using this button. I have also added an example at the end of the file. This is just meant to be an example on how it could be done. It lacks the visual feedback about which modules have been selected and the possibility to remove modules from the selection. It is also questionable whether returning a string with one module per line is the appropriate return value. Most likely you want to do something with this list, so a Skip list would probably more useful.
// Enhanced Mini Database Explorer
/*
Mini database explorer based on Telelogic builtin miniExplorer.
Includes a fix for the builtin miniExplorer problem where it returns
a folder name even when the item filter is set to return a formal
module. The OK button is now inactive until an item matching the
filter is selected.
Usage:
string miniExplorer(DB dbParent, Folder fStart, int itemMask)
string miniExplorer(DB dbParent, Folder fStart)
string miniExplorer(Folder fStart, int itemMask)
string miniExplorer(DB dbParent, int itemMask)
string miniExplorer()
Where:
dbParent Parent dialog box. Returns focus to this dialog
on closing.
fStart Folder to open in the tree when the dialog is first
displayed.
itemMask Mask used to filter items that are displayed.
MINI_EXP_FP - show folders and projects
MINI_EXP_LINK_MODS - show link modules
MINI_EXP_FORMAL_MODS - show formal modules
MINI_EXP_DESCRIPTIVE_MODS - show descriptive modules
MINI_EXP_SHOW_DELETED - show deleted items
smartDXL.com
Modifications:
Peter Albert (PA) 25.05.2011: Added the option to return a list of modules
*/
pragma runLim, 0
// item filters
const int MINI_EXP_FP = 1
const int MINI_EXP_LINK_MODS = 2
const int MINI_EXP_FORMAL_MODS = 4
const int MINI_EXP_DESCRIPTIVE_MODS = 8
const int MINI_EXP_SHOW_DELETED = 16
// item filters
const int MINI_EXP_SHOW_ALL_NO_DELETED = 15
const int MINI_EXP_SHOW_ALL = 31
DB dbMiniExplorer = null
DBE dbeMiniExplorerTree = null
DBE dbeMiniExplorerOkButton = null
int miniExplorerItemMask = MINI_EXP_FP
string miniExplorerSelectedItem = ""
// PA: Add flag for selection of multiple files
bool miniExplorerAllowMultipleFiles = false
DBE miniExplorerAddButton = null
/******************************************************************************
itemMatchesMask
******************************************************************************/
bool itemMatchesMask(Item itm)
{
if (type(itm) == "Formal" && ((miniExplorerItemMask & MINI_EXP_FORMAL_MODS) == MINI_EXP_FORMAL_MODS))
{
return(true)
}
if (type(itm) == "Link" && ((miniExplorerItemMask & MINI_EXP_LINK_MODS) == MINI_EXP_LINK_MODS))
{
return(true)
}
if (type(itm) == "Descriptive" && ((miniExplorerItemMask & MINI_EXP_DESCRIPTIVE_MODS) == MINI_EXP_DESCRIPTIVE_MODS))
{
return(true)
}
return(false)
}
/******************************************************************************
doOk
******************************************************************************/
void doOk(DB db)
{
// PA: Set return value on selection, rather than on pressing the OK button
//miniExplorerSelectedItem = getRealPath(dbSep get(dbeMiniExplorerTree))
release(dbMiniExplorer)
hide(dbMiniExplorer)
}
/******************************************************************************
doActivate
******************************************************************************/
void doActivate(DBE dbe)
{
string sel = getRealPath(dbSep get(dbeMiniExplorerTree))
if (itemMatchesMask(item(sel)) && !miniExplorerAllowMultipleFiles)
{
miniExplorerSelectedItem = sel
release(dbMiniExplorer)
hide(dbMiniExplorer)
}
}
/******************************************************************************
doCancel
******************************************************************************/
void doCancel(DB db)
{
miniExplorerSelectedItem = ""
release(dbMiniExplorer)
hide(dbMiniExplorer)
}
/******************************************************************************
doNothing
******************************************************************************/
void doNothing(DB db)
{
;
}
/******************************************************************************
addItem
******************************************************************************/
void addItem(DBE dbe, Item i)
{
string displayPath = getDisplayPath(i)
// check status
if (exists(dbeMiniExplorerTree, displayPath) == false)
{
// check status
if (isDeleted(i) == false || (isDeleted(i) == true && ((miniExplorerItemMask & MINI_EXP_SHOW_DELETED) == MINI_EXP_SHOW_DELETED)))
{
// check item type
if (type(i) == "Folder" || type(i) == "Project")
{
Icon iconOpen, iconClosed
string sDummyEntry = displayPath dbSep dummyItem
// assign project or folder specific icons
assignIcons(i, iconOpen, iconClosed)
// add entry (plus dummy)
insert(dbeMiniExplorerTree, displayPath, iconClosed, iconOpen)
insert(dbeMiniExplorerTree, sDummyEntry, iconClosed, iconOpen)
}
else
{
if (itemMatchesMask(i))
{
insert(dbeMiniExplorerTree, displayPath, getIcon(i), getIcon(i))
}
}
}
}
}
/******************************************************************************
displayBranch
******************************************************************************/
void displayBranch(DBE dbe, string sItemPath)
{
Folder fStart = folder(getRealPath(sItemPath))
if (fStart != null)
{
Item i
for i in all fStart do
{
addItem(dbeMiniExplorerTree, i)
}
}
}
/******************************************************************************
doSelect
******************************************************************************/
void doSelect(DBE dbe)
{
string sel = getRealPath(dbSep get(dbeMiniExplorerTree))
if (itemMatchesMask(item(sel)))
{
active(dbeMiniExplorerOkButton)
// PA: Set return value on selection, rather than on pressing the OK button
// But only set it, if multiple files is not active
// Eventually, allow adding files
if (!miniExplorerAllowMultipleFiles){miniExplorerSelectedItem = sel}
else {active miniExplorerAddButton}
}
else
{
inactive(dbeMiniExplorerOkButton)
// PA deactivate the add button as well
inactive(miniExplorerAddButton)
}
}
/******************************************************************************
doExpand
******************************************************************************/
bool doExpand(DBE dbe, string sItem)
{
string sItemPath = dbSep sItem
string sDummyItem = sItemPath dbSep dummyItem
// check status
if (exists(dbeMiniExplorerTree, sDummyItem) == true)
{
// remove dummy
delete(dbeMiniExplorerTree, sDummyItem)
}
// check status
if (theCurrentView == DATABASE_VIEW)
{
// adjust view accordingly
displayBranch(dbeMiniExplorerTree, sItemPath)
}
else
{
Project prjOldRoot = getRootProject_()
setRootProject_(project(getRootOfPath sItemPath))
// adjust view accordingly
displayBranch(dbeMiniExplorerTree, sItemPath)
setRootProject_(prjOldRoot)
}
return true
}
/******************************************************************************
PA doAdd
******************************************************************************/
void doAdd(DB db)
{
string sel = getRealPath(dbSep get(dbeMiniExplorerTree))
if (itemMatchesMask(item(sel)))
{
if (miniExplorerSelectedItem != ""){miniExplorerSelectedItem = miniExplorerSelectedItem "\n"}
miniExplorerSelectedItem = miniExplorerSelectedItem sel
}
}
/******************************************************************************
fnChangeToStartFolder
******************************************************************************/
void fnChangeToStartFolder(Folder fStart)
{
if (!null fStart)
{
int iIndex
// calculate max bound for loop
int iFinish = length(rootName_(fStart))
// prepare initial path
string sFolderPath = ((theCurrentView == DATABASE_VIEW) ? dbDisplayRoot() : "")
// process string
for iIndex in 0 : iFinish by 1 do
{
// obtain character
string sCharacter = (rootName_(fStart))[iIndex:iIndex]
// check status
if (sCharacter == dbSep || iIndex == iFinish)
{
// check status
if (theCurrentView == PROJECT_VIEW && sFolderPath == dbSep)
continue
// update explorer
displayBranch(dbeMiniExplorerTree, sFolderPath)
}
sFolderPath = sFolderPath sCharacter
}
// update explorer
set(dbeMiniExplorerTree, sFolderPath)
}
else
{
// default to database level
displayBranch(dbeMiniExplorerTree, dbDisplayRoot())
set(dbeMiniExplorerTree, dbDisplayRoot())
}
}
/******************************************************************************
miniExplorer
Provides a tree view for user to select an item from the database.
Parameters:
dbParent Parent dialog box. Returns focus to this dialog
on closing.
fStart Folder to open in the tree when the dialog is first
displayed.
itemMask Mask used to filter items that are displayed.
Returns fullname of selected item or an empty string.
******************************************************************************/
string miniExplorer(DB dbParent,
Folder fStart,
int itemMask)
{
string pName = ""
Project pRoot = null
// PA: Empty return value when calling miniExplorer
miniExplorerSelectedItem = ""
miniExplorerItemMask = itemMask
if (null dbParent)
{
dbMiniExplorer = create("smart Mini Explorer", styleFloating)
}
else
{
dbMiniExplorer = create(dbParent, "smart Mini Explorer", styleFloating)
}
label(dbMiniExplorer, "Please select an item...")
dbeMiniExplorerTree = treeView(dbMiniExplorer, treeViewOptionSorted, 400, 15)
dbeMiniExplorerOkButton = apply(dbMiniExplorer, "OK", doOk)
// PA: Add a button to create a list of modules
miniExplorerAddButton = apply(dbMiniExplorer, "Add", doAdd)
// create our own close and ok buttons
close(dbMiniExplorer, false, doNothing)
ok(dbMiniExplorer, "Cancel", doCancel)
realize dbMiniExplorer
set(dbeMiniExplorerTree, doSelect, doActivate)
set(dbeMiniExplorerTree, doExpand)
inactive(dbeMiniExplorerOkButton)
// PA deactivate the add button as well
inactive(miniExplorerAddButton)
// check status
if (theCurrentView == DATABASE_VIEW)
{
// adjust accordingly
insert(dbeMiniExplorerTree, dbDisplayRoot(), iconDatabase, iconDatabase)
}
else
{
pRoot = getRootProject_()
setRootProject_(null)
// process database
for pName in database do
{
addItem(dbeMiniExplorerTree, item(dbSep pName))
}
setRootProject_(pRoot)
}
fnChangeToStartFolder(fStart)
block(dbMiniExplorer)
destroy(dbMiniExplorer)
return(miniExplorerSelectedItem)
}
/******************************************************************************
miniExplorer
Filter not specified
******************************************************************************/
string miniExplorer(DB dbParent, Folder fStart)
{
return miniExplorer(dbParent, fStart, MINI_EXP_SHOW_ALL)
}
/******************************************************************************
miniExplorer
Parent dialog not specified
******************************************************************************/
string miniExplorer(Folder fStart, int itemMask)
{
return miniExplorer(null, fStart, itemMask)
}
/******************************************************************************
miniExplorer
Current folder not specified
******************************************************************************/
string miniExplorer(DB dbParent, int itemMask)
{
return miniExplorer(dbParent, null, itemMask)
}
/******************************************************************************
miniExplorer
No parameters
******************************************************************************/
string miniExplorer()
{
return miniExplorer(null, null, MINI_EXP_SHOW_ALL)
}
/******************************************************************************
PA Examples
******************************************************************************/
DB testMiniExplorer_DB
DBE testMiniExplorer_modDBE
DBE testMiniExplorer_textDBE
void testMiniExplorer_doBrowseOne(DBE dbe)
{
string mName = miniExplorer(testMiniExplorer_DB, current Folder, MINI_EXP_FORMAL_MODS)
set(testMiniExplorer_modDBE, mName)
}
void testMiniExplorer_doBrowseList(DBE dbe)
{
miniExplorerAllowMultipleFiles = true
string mName = miniExplorer(testMiniExplorer_DB, current Folder, MINI_EXP_FORMAL_MODS)
set(testMiniExplorer_textDBE, mName)
}
void testMiniExplorer()
{
testMiniExplorer_DB = create("Test the miniExplorer")
testMiniExplorer_modDBE = field (testMiniExplorer_DB, "One Module:", "", 50, false)
beside testMiniExplorer_DB
button( testMiniExplorer_DB, "Browse...", testMiniExplorer_doBrowseOne)
left testMiniExplorer_DB
testMiniExplorer_textDBE = text(testMiniExplorer_DB, "Module list", "", 50, 150, false)
button( testMiniExplorer_DB, "Browse...", testMiniExplorer_doBrowseList)
realize testMiniExplorer_DB
show testMiniExplorer_DB
}
thanks a lot! Now I have something to work with. Without wanting to appear ungrateful, what really would be fantastic: From a dialog box with a listview I open the miniExplorer and by double-clicking modules in it I can insert them into the listview one by one, then close the miniExplorer. Anyway, many thanks for your effort! Karl |